import { defineStore } from 'pinia';
import user from './user'
import washApi from '@/sheep/api/wash';
import {showAuditModal} from '@/sheep/hooks/useAudit.js';
import { wgs84ToGcj02 } from '@/sheep/helper/index.js';
import showMiniAuth from '@/sheep/hooks/useMiniAuth.js';
import sheep from '@/sheep';
const wash = defineStore({
  id: 'location',
  state: () => ({
    // 当前位置
    myPosition:{
      latitude:30.23555800000002,
      longitude:120.25218299999995,
	  city:'杭州'
    },
  }),
  actions: {
	  // 获取城市名
	  getCityName(latitude, longitude) {
	    sheep.$api.data
	      .getcity({
	        latitude: latitude,
	        longitude: longitude,
	      })
	      .then((res) => {
	        if (res.error === 0) {
				this.myPosition.city=res.data.name
	        }
	      });
	  },
    // 定位
    getLocation() {
      return new Promise((resolve,reject)=>{
        const location = ()=>{
          uni.showLoading({
            title: '定位中',
            mask: true
          })
          uni.getLocation({
            // type: 'gcj02',
			//仅App平台支持,微信小程序不支持此参数
            geocode: false,
            success: (res) => {
				// console.log('res:',res);
				uni.hideLoading()
				let [ lng , lat ] = wgs84ToGcj02(res.longitude,res.latitude)
				this.myPosition.longitude = lng;
				this.myPosition.latitude = lat;
				this.getCityName(lat,lng)
				resolve({
					...res,
					longitude:lng,
					latitude:lat,
				})
            },
            fail: (err) => {
			  uni.hideLoading()
              uni.showToast({
                title: '定位失败,请退出重试',
                icon: 'none'
              })
              reject(err)
            }
          })
        }
		// #ifdef APP
		showAuditModal('ACCESS_FINE_LOCATION',()=>{
			location()
		},()=>{
			reject()
		})
		// #endif
        // #ifdef MP
		showMiniAuth('scope.userLocation',()=>{
			console.log('111111');
			location();
		},()=>{
			uni.showToast({
				title:'授权失败',
				icon:'none',
			})
		})		
     //    uni.getSetting({
     //      scope: 'scope.userLocation',
     //      success(res) {
			  // console.log('res:',res);
			  // if(res.authSetting['scope.userLocation']){
				 //  location()
			  // }else{
				 //  uni.authorize({
					//   scope: 'scope.userLocation',
					//   success: function (authorizeREs) {
					// 	  console.log('authorizeREs:',authorizeREs)
					// 	// 授权成功后重新获取位置
					// 	location();
					//   },
					//   fail: function (authorizEerror) {
					// 	  console.log('authorizEerror:',authorizEerror);
					// 	// 授权失败，提示用户手动开启权限
					// 	uni.showModal({
					// 		title: '温馨提示',
					// 		content: '请先授权定位权限',
					// 		success: function (modalRes) {
					// 			if (modalRes.confirm) {
					// 				uni.openSetting({
					// 				  success(result) {
					// 				    if(result.authSetting['scope.userLocation']){
					// 				      location()
					// 				    }
					// 				  },
					// 				  fail(error){
					// 					  uni.showToast({
					// 					    title: '授权失败',
					// 					    icon: 'none'
					// 					  })
					// 					  reject(error)
					// 				  }
					// 				})
					// 			} else if (res.cancel) {
					// 				console.log('定位点击取消');
					// 			}
					// 		}
					// 	});
					//   }
					// });
			  // }
     //      }
     //    })
      // #endif
	  // #ifdef H5
	  location();
	  // #endif
      })
    }
  },
  persist: {
    enabled: true,
    strategies: [
      {
        key: 'location',
        // #ifdef H5
        storage: localStorage, //存储的位置，默认为sessionStorage
        // #endif
      },
    ],
  },
});

export default wash;
